Computer programs generally require some customization when installed on a computer. Such computer programs can consist of several software components, each of which may need to be customized individually when incorporated into a particular program. A program into which a software component can be incorporated can be considered to be a data set. Similarly, the software component can be considered to be a data set. Thus, the process of configuring and installing a software component can be generalized as a customization of and merging of two of more data sets. A software component may in turn be incorporated into several different programs, each requiring the component to be customized differently.
Before a component can be incorporated into a data set (e.g. into a computer program) it may require configuration specific to that data set. Customizing the component prior to incorporation into a particular data set has historically been a difficult process because each component is customizable in different ways and each target data set may have different requirements. Also, mechanically changing a component has historically been difficult. Generally, the configuration options for a component are not well known to a component consumer. Also, even if the consumer knows the configuration options, the specific physical changes required to customize the component might not be known or might be difficult to implement.
Schemas and automated tools that enable the consumer to customize a component can simplify the consumer's task and reduce the possibility of customization errors. Conventionally, such an automated tool was of limited value, however, because it needed to be specifically designed for the component it was customizing and such specific redesign of the automated tool was at least as difficult as simply customizing the component by hand. Consequently, there is a need for a system and a process to automate and simplify merging of components into a data set.